/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.reporte.modelo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 *
 * @author 43579648
 */
@Entity
@Table(name = "DATO_REPORTE", catalog = "", schema = "APP")
@NamedQueries({
    @NamedQuery(name = "DatoReporte.findAll", query = "SELECT d FROM DatoReporte d"),
    @NamedQuery(name = "DatoReporte.findByIdDatoReporte", query = "SELECT d FROM DatoReporte d WHERE d.idDatoReporte = :idDatoReporte"),
    @NamedQuery(name = "DatoReporte.findByFechaCreacion", query = "SELECT d FROM DatoReporte d WHERE d.fechaCreacion = :fechaCreacion"),
    @NamedQuery(name = "DatoReporte.findByUsuarioGenera", query = "SELECT d FROM DatoReporte d WHERE d.usuarioGenera = :usuarioGenera")})
public class DatoReporte implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "ID_DATO_REPORTE", nullable = false)
    private Integer idDatoReporte;
    @Basic(optional = false)
    @Column(name = "FECHA_CREACION", nullable = false)
    @Temporal(TemporalType.DATE)
    private Date fechaCreacion;
    @Basic(optional = false)
    @Column(name = "USUARIO_GENERA", nullable = false, length = 15)
    private String usuarioGenera;
    @JoinColumn(name = "ID_REPORTE", referencedColumnName = "ID_REPORTE", nullable = false)
    @ManyToOne(optional = false)
    private Reporte reporte;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "datoReporte")
    private List<DetalleDatoReporte> detalleDatoReporteList;

    public DatoReporte() {
    }

    public DatoReporte(Integer idDatoReporte) {
        this.idDatoReporte = idDatoReporte;
    }

    public DatoReporte(Integer idDatoReporte, Date fechaCreacion, String usuarioGenera) {
        this.idDatoReporte = idDatoReporte;
        this.fechaCreacion = fechaCreacion;
        this.usuarioGenera = usuarioGenera;
    }

    public Integer getIdDatoReporte() {
        return idDatoReporte;
    }

    public void setIdDatoReporte(Integer idDatoReporte) {
        this.idDatoReporte = idDatoReporte;
    }

    public Date getFechaCreacion() {
        return fechaCreacion;
    }

    public void setFechaCreacion(Date fechaCreacion) {
        this.fechaCreacion = fechaCreacion;
    }

    public String getUsuarioGenera() {
        return usuarioGenera;
    }

    public void setUsuarioGenera(String usuarioGenera) {
        this.usuarioGenera = usuarioGenera;
    }

    public Reporte getReporte() {
        return reporte;
    }

    public void setReporte(Reporte reporte) {
        this.reporte = reporte;
    }

    public List<DetalleDatoReporte> getDetalleDatoReporteList() {
        return detalleDatoReporteList;
    }

    public void setDetalleDatoReporteList(List<DetalleDatoReporte> detalleDatoReporteList) {
        this.detalleDatoReporteList = detalleDatoReporteList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idDatoReporte != null ? idDatoReporte.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof DatoReporte)) {
            return false;
        }
        DatoReporte other = (DatoReporte) object;
        if ((this.idDatoReporte == null && other.idDatoReporte != null) || (this.idDatoReporte != null && !this.idDatoReporte.equals(other.idDatoReporte))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "org.reporte.modelo.DatoReporte[idDatoReporte=" + idDatoReporte + "]";
    }

}
